<template>
  <div class="home-recommond">
    <h1>推荐歌单</h1>
    <div class="wrapper" ref="wrapper">
      <!--滚动所需的容器-->
      <ul class="content" ref="content">
        <li
          v-for="(item, index) in listData"
          :key="index"
          @click="selectItem(item)"
        >
          <div class="cover">
            <van-image :src="item.cover" radius="10px" />
            <span>{{ item.listen_num | numFilter(1) }}万</span>
          </div>
          <span>{{ item.title }}</span>
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
import { betterScrollHorizontal } from "../../common/betterScroll.js"; //引入betterscroll
export default {
  data() {
    return {
      listData: [],
    };
  },
  created() {
    this.getSongListData();
  },
  methods: {
    getSongListData() {
      this.$request("get", "/recommend/playlist/u").then((res) => {
        console.log(res);
        if (res.result == 100) {
          this.listData = res.data.list;
        }
        // 异步数据的处理
        betterScrollHorizontal(
          this,
          this.$refs.wrapper,
          this.$refs.content,
          this.listData.length,
          10
        ); //调用横向滚动的方法
      });
    },
    selectItem(item) {
      const id = item.content_id; //获取歌单的id
      // console.log(id);
      // 编程式导航
      // 1.命名式路由(带参数)
      // this.$router.push({
      //   name: "songlist",
      //   params: {
      //     id: id,
      //   },
      // });
      // 通过path手动建立url
      this.$router.push({
        path: `/songlist/${id}`,
      });
    },
  },
  filters: {
    //过滤器
    //处理播放量的显示格式 param num :保留小位的位数 value 处理的数值
    numFilter(value, num) {
      return parseFloat(value / 1000).toFixed(num);
    },
  },
};
</script>
<style scoped>
.cover {
  position: relative; /** 相对定位 */
}

.cover > span {
  position: absolute;
  bottom: 0.4rem;
  right: 0.2rem;
  background-color: rgba(233, 129, 44, 0.87);
  color: white;
  font-size: 14px;
  border-radius: 1rem;
  widows: 5rem;
  display: inline-block;
}
.wrapper {
  width: 100%; /** 容器的宽度就是屏幕的宽度 */
  overflow: hidden;
}

/**ul.content {
   content内容区的宽度要大于wrapper容器的宽度，12个列表项 
  width: calc(12 * 10rem);
}*/
ul.content li {
  /* li默认使用块级元素 */
  display: inline-block; /**行内元素*/
  width: 10rem;
  vertical-align: top; /**垂直方向的algin顶满上一个div */
}
ul.content li * {
  /**选取下面的所有元素*/
  margin: 0.1rem;
}
ul.content li > span {
  font-size: 0.8rem;
  color: rgb(41, 31, 24);
}
.home-recommond > h1 {
  text-align: center;
  font-size: 22px;
}
</style>